package com.atguigu.bigdata.scala.chapter07

object Scala02_Collection_Array {

    def main(args: Array[String]): Unit = {

        // TODO 集合 - 数组

        // 集合的创建
        // java中数组并不是集合
        // String[] ss = new String[3]
        // ss[0] = "a"
        // ss[1] = "b"
        // ss[2] = "c"
        // scala将数组也用类来表示，所以就可以当成集合来用
        // 构造一个长度为3的数组
        // scala中，中括号表示泛型
        // scala使用Array声明的数组，在编译时，会直接编译为java中的数组
        // scala中如果想要通过索引方法数组的元素，那么不能使用中括号，需要采用小括号， 在编译时，会自动编译为中括号
        val array = new Array[String](3)
        // println( array )
        array(0) = "a"
        array(1) = "b"
        array(2) = "c"
        //array(3) = "c"

        // 数据的操作

        // 数据的遍历
        // [Ljava.lang.String;@11531931
        for ( s <- array ) {
            println(s)
        }
        // 将数据使用特殊的方式在一行中输出
        println(array.mkString(","))
        // TODO 面向对象（方法）的方式循环
        // foreach方法可以循环集合中的每一个元素
        // 这个方法需要传递一个参数，这个参数的类型是一个函数类型：String=>U
//        def foreachFunction( s : String ): Unit = {
//            println(s)
//        }
//        array.foreach(foreachFunction)
//        array.foreach(
//            ( s : String ) => {
//                println(s)
//            }
//        )
//        array.foreach(( s : String ) => {println(s)})
//        array.foreach(( s : String ) => println(s))
//        array.foreach(( s ) => println(s))
//        array.foreach(s => println(s))
//        array.foreach(println(_))
        array.foreach(println)


    }
}
